import Vue from 'vue';
import Vuex from 'vuex';

import axios from 'axios';

// 挂载
Vue.use(Vuex)

// 创建Vuex对象
const store = new Vuex.Store({
    // state 属性用来存放要集中存储或者共享的数据
    state: {
        myCount: 999,
        ary: []
    },
    // mutations 属性用来定义相关的方法，用来改变state中的数据变量
    // mutations 中的所有方法必须是同步的
    mutations: {
        increment (state, n) {
            state.myCount += n
        },
        setAry(state, value) {
            state.ary = value
        }
    },
    // actions 属性用来定义相关的方法，通过调用mutations中的方法来改变数据变量
    // actions 中的所有方法可以是异步
    actions: {
        incr({commit}, step) {
            // 调用mutation完成操作
            commit('increment', step)
        },
        async initAry({commit}) {
            // 发送异步请求获取数据
          const {data: res} = await axios.get('/sysusers/list')
          console.log('res', res);
          commit('setAry', res)
        }
    },
    getters: {

    }
})

export default store